<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>ArNetworking: ArClientFileToClient Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">ArNetworking
   &#160;<span id="projectnumber">dev20161014</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classArClientFileToClient.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classArClientFileToClient-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ArClientFileToClient Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Class for getting files from the server.  
 <a href="classArClientFileToClient.html#details">More...</a></p>

<p><code>#include &lt;ArClientFileUtils.h&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a8ae2a27a21fff00620aa5932abb5a023"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#a8ae2a27a21fff00620aa5932abb5a023">addFileReceivedCallback</a> (<a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1.html">ArFunctor1</a>&lt; int &gt; *functor, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArListPos.html#adb42d52c70a646c5698c5513cd25bbd0">ArListPos::Pos</a> position=<a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArListPos.html#adb42d52c70a646c5698c5513cd25bbd0a3c55111fa6c7f63c41fc0b387f5b57d9">ArListPos::LAST</a>)</td></tr>
<tr class="memdesc:a8ae2a27a21fff00620aa5932abb5a023"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a callback for when we get the desired file (or fail)  <a href="#a8ae2a27a21fff00620aa5932abb5a023">More...</a><br /></td></tr>
<tr class="separator:a8ae2a27a21fff00620aa5932abb5a023"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2920d44577a99d421d33622773b746ff"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#a2920d44577a99d421d33622773b746ff">ArClientFileToClient</a> (<a class="el" href="classArClientBase.html">ArClientBase</a> *<a class="el" href="configClientToServer_8cpp.html#afe594bfb305907ae82f259409cc214cb">client</a>)</td></tr>
<tr class="memdesc:a2920d44577a99d421d33622773b746ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a2920d44577a99d421d33622773b746ff">More...</a><br /></td></tr>
<tr class="separator:a2920d44577a99d421d33622773b746ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c34fb8effac321142196ab17fa868e3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#a3c34fb8effac321142196ab17fa868e3">cancelGet</a> (void)</td></tr>
<tr class="memdesc:a3c34fb8effac321142196ab17fa868e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cancels getting a file.  <a href="#a3c34fb8effac321142196ab17fa868e3">More...</a><br /></td></tr>
<tr class="separator:a3c34fb8effac321142196ab17fa868e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4929609a8f3d46a405a8613b40ddffcc"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#a4929609a8f3d46a405a8613b40ddffcc">getClientFileName</a> (void)</td></tr>
<tr class="memdesc:a4929609a8f3d46a405a8613b40ddffcc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the filename we'll save the gotten file in.  <a href="#a4929609a8f3d46a405a8613b40ddffcc">More...</a><br /></td></tr>
<tr class="separator:a4929609a8f3d46a405a8613b40ddffcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa22974b9c503a48b6b12354fe2b101d7"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#aa22974b9c503a48b6b12354fe2b101d7">getDirectory</a> (void)</td></tr>
<tr class="memdesc:aa22974b9c503a48b6b12354fe2b101d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the directory we're getting from.  <a href="#aa22974b9c503a48b6b12354fe2b101d7">More...</a><br /></td></tr>
<tr class="separator:aa22974b9c503a48b6b12354fe2b101d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6c67cc9461922e8186ab5df15017fbfb"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#a6c67cc9461922e8186ab5df15017fbfb">getFileFromDirectory</a> (const char *directory, const char *fileName, const char *clientFileName, bool isSetTimestamp=false)</td></tr>
<tr class="memdesc:a6c67cc9461922e8186ab5df15017fbfb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the file from a directory.  <a href="#a6c67cc9461922e8186ab5df15017fbfb">More...</a><br /></td></tr>
<tr class="separator:a6c67cc9461922e8186ab5df15017fbfb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a4d93d53ed383192b75143d60094d31"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#a2a4d93d53ed383192b75143d60094d31">getFileName</a> (void)</td></tr>
<tr class="memdesc:a2a4d93d53ed383192b75143d60094d31"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the filename we're getting.  <a href="#a2a4d93d53ed383192b75143d60094d31">More...</a><br /></td></tr>
<tr class="separator:a2a4d93d53ed383192b75143d60094d31"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05c011e29731b8b0933b15b261e42f4f"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArTime.html">ArTime</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#a05c011e29731b8b0933b15b261e42f4f">getLastReceived</a> (void)</td></tr>
<tr class="memdesc:a05c011e29731b8b0933b15b261e42f4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the last time we finished getting a file.  <a href="#a05c011e29731b8b0933b15b261e42f4f">More...</a><br /></td></tr>
<tr class="separator:a05c011e29731b8b0933b15b261e42f4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4c9e0fbf12a4136cbdfdd3d6412854ed"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArTime.html">ArTime</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#a4c9e0fbf12a4136cbdfdd3d6412854ed">getLastRequested</a> (void)</td></tr>
<tr class="memdesc:a4c9e0fbf12a4136cbdfdd3d6412854ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the last time we asked for a file.  <a href="#a4c9e0fbf12a4136cbdfdd3d6412854ed">More...</a><br /></td></tr>
<tr class="separator:a4c9e0fbf12a4136cbdfdd3d6412854ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1eb35af8547449158603974cf6cf63cd"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#a1eb35af8547449158603974cf6cf63cd">isAvailable</a> (void)</td></tr>
<tr class="memdesc:a1eb35af8547449158603974cf6cf63cd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sees if the server supports what this class needs.  <a href="#a1eb35af8547449158603974cf6cf63cd">More...</a><br /></td></tr>
<tr class="separator:a1eb35af8547449158603974cf6cf63cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af3cca08315edf9b8ec2d61b2d0a3feec"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#af3cca08315edf9b8ec2d61b2d0a3feec">isAvailableSetTimestamp</a> (void)</td></tr>
<tr class="separator:af3cca08315edf9b8ec2d61b2d0a3feec"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a271f4b6fb58fe94976812c59945884c3"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#a271f4b6fb58fe94976812c59945884c3">isWaitingForFile</a> (void)</td></tr>
<tr class="memdesc:a271f4b6fb58fe94976812c59945884c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">If we're getting a file now.  <a href="#a271f4b6fb58fe94976812c59945884c3">More...</a><br /></td></tr>
<tr class="separator:a271f4b6fb58fe94976812c59945884c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1964908870ddc9c90be98de53b453d2d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#a1964908870ddc9c90be98de53b453d2d">remFileReceivedCallback</a> (<a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1.html">ArFunctor1</a>&lt; int &gt; *functor)</td></tr>
<tr class="memdesc:a1964908870ddc9c90be98de53b453d2d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes a callback for when we get the desired file (or fail)  <a href="#a1964908870ddc9c90be98de53b453d2d">More...</a><br /></td></tr>
<tr class="separator:a1964908870ddc9c90be98de53b453d2d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c774217ee64fb84cd3047c020fb85af"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#a3c774217ee64fb84cd3047c020fb85af">~ArClientFileToClient</a> ()</td></tr>
<tr class="memdesc:a3c774217ee64fb84cd3047c020fb85af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor.  <a href="#a3c774217ee64fb84cd3047c020fb85af">More...</a><br /></td></tr>
<tr class="separator:a3c774217ee64fb84cd3047c020fb85af"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a0bb7813d9cd97218b3165592f380ba64"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#a0bb7813d9cd97218b3165592f380ba64">callFileReceivedCallbacks</a> (int val)</td></tr>
<tr class="separator:a0bb7813d9cd97218b3165592f380ba64"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa0427338c17535bfe15a8cc1e83852cb"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#aa0427338c17535bfe15a8cc1e83852cb">doGetFile</a> (<a class="el" href="classArNetPacket.html">ArNetPacket</a> *packet, bool isSetTimestamp)</td></tr>
<tr class="separator:aa0427338c17535bfe15a8cc1e83852cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1000c8f2945568072fefa3d3c90b1107"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#a1000c8f2945568072fefa3d3c90b1107">netGetFile</a> (<a class="el" href="classArNetPacket.html">ArNetPacket</a> *packet)</td></tr>
<tr class="separator:a1000c8f2945568072fefa3d3c90b1107"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a294d1eb8064f2b762ad7dc7b84ecf186"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#a294d1eb8064f2b762ad7dc7b84ecf186">netGetFileWithTimestamp</a> (<a class="el" href="classArNetPacket.html">ArNetPacket</a> *packet)</td></tr>
<tr class="separator:a294d1eb8064f2b762ad7dc7b84ecf186"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a02de3a1b43117ba0e4990299638785ca"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html">ArMutex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#a02de3a1b43117ba0e4990299638785ca">myCallbackMutex</a></td></tr>
<tr class="separator:a02de3a1b43117ba0e4990299638785ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81119cd522bd9692559555923ea6d4b4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classArClientBase.html">ArClientBase</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#a81119cd522bd9692559555923ea6d4b4">myClient</a></td></tr>
<tr class="separator:a81119cd522bd9692559555923ea6d4b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa1aff7c76f49aedc937795ae8a9ad361"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#aa1aff7c76f49aedc937795ae8a9ad361">myClientFileName</a></td></tr>
<tr class="separator:aa1aff7c76f49aedc937795ae8a9ad361"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a427fc2021fa520b0435461a6d9034f19"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html">ArMutex</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#a427fc2021fa520b0435461a6d9034f19">myDataMutex</a></td></tr>
<tr class="separator:a427fc2021fa520b0435461a6d9034f19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8391ae824478fda7261ac4c84caa102"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#ac8391ae824478fda7261ac4c84caa102">myDirectory</a></td></tr>
<tr class="separator:ac8391ae824478fda7261ac4c84caa102"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f9d9c4634ef364795234005cfddbe36"><td class="memItemLeft" align="right" valign="top">FILE *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#a4f9d9c4634ef364795234005cfddbe36">myFile</a></td></tr>
<tr class="separator:a4f9d9c4634ef364795234005cfddbe36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e27b84d45f468764a898b7aba39275d"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#a4e27b84d45f468764a898b7aba39275d">myFileName</a></td></tr>
<tr class="separator:a4e27b84d45f468764a898b7aba39275d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd1d9df2586c700eec51795b807dd9d8"><td class="memItemLeft" align="right" valign="top">std::list&lt; <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1.html">ArFunctor1</a>&lt; int &gt; * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#afd1d9df2586c700eec51795b807dd9d8">myFileReceivedCallbacks</a></td></tr>
<tr class="separator:afd1d9df2586c700eec51795b807dd9d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a362f2949441f95ba895a84e6d32aea2f"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1C.html">ArFunctor1C</a>&lt; <a class="el" href="classArClientFileToClient.html">ArClientFileToClient</a>, <a class="el" href="classArNetPacket.html">ArNetPacket</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#a362f2949441f95ba895a84e6d32aea2f">myGetFileCB</a></td></tr>
<tr class="separator:a362f2949441f95ba895a84e6d32aea2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84cf5823e0852172215bcf3c617cc581"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1C.html">ArFunctor1C</a>&lt; <a class="el" href="classArClientFileToClient.html">ArClientFileToClient</a>, <a class="el" href="classArNetPacket.html">ArNetPacket</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#a84cf5823e0852172215bcf3c617cc581">myGetFileWithTimestampCB</a></td></tr>
<tr class="separator:a84cf5823e0852172215bcf3c617cc581"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9c7c07d6cef3bd66bd79cf0f01f4714a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#a9c7c07d6cef3bd66bd79cf0f01f4714a">myIsWaitingForFile</a></td></tr>
<tr class="separator:a9c7c07d6cef3bd66bd79cf0f01f4714a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aef93ffa4da17748ad5ac71440e99753c"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArTime.html">ArTime</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#aef93ffa4da17748ad5ac71440e99753c">myLastReceived</a></td></tr>
<tr class="separator:aef93ffa4da17748ad5ac71440e99753c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6e9b6c04f34cbc5786c46054f50e2d0"><td class="memItemLeft" align="right" valign="top"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArTime.html">ArTime</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#aa6e9b6c04f34cbc5786c46054f50e2d0">myLastRequested</a></td></tr>
<tr class="separator:aa6e9b6c04f34cbc5786c46054f50e2d0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a887d961d27b86cb933b487a22fe0fff1"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArClientFileToClient.html#a887d961d27b86cb933b487a22fe0fff1">myWholeFileName</a></td></tr>
<tr class="separator:a887d961d27b86cb933b487a22fe0fff1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Class for getting files from the server. </p>
<p>This class will interact with the <a class="el" href="classArServerFileToClient.html" title="Gets files from the server. ">ArServerFileToClient</a> and get a file on the server. If you want to find out what files are on the server use <a class="el" href="classArClientFileLister.html" title="Class for getting file list information from the server. ">ArClientFileLister</a>.</p>
<p>When get a file it doesn't happen right away, but when the file is received (or failes) the fileGotten callbacks will be called, 0 as the int for the callback means everything is good, positive error messages are from the server (1 == tried to go outside allowed area, 2 == no such directory, 3 == empty file name, 4 == problem reading file), negative are from this class (-1 == got directory but it wasn't what we wanted (if you wait the right one might come in, like if someone selects one dir then the other), -2 == can't open file to put result into). </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a2920d44577a99d421d33622773b746ff"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ArClientFileToClient::ArClientFileToClient </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArClientBase.html">ArClientBase</a> *&#160;</td>
          <td class="paramname"><em>client</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructor. </p>

<p>References <a class="el" href="classArClientBase.html#a57e195371c8ae810b4bbdd1020852aa5">ArClientBase::addHandler()</a>, <a class="el" href="classArClientFileToClient.html#a02de3a1b43117ba0e4990299638785ca">myCallbackMutex</a>, <a class="el" href="classArClientFileToClient.html#a81119cd522bd9692559555923ea6d4b4">myClient</a>, <a class="el" href="classArClientFileToClient.html#a427fc2021fa520b0435461a6d9034f19">myDataMutex</a>, <a class="el" href="classArClientFileToClient.html#a362f2949441f95ba895a84e6d32aea2f">myGetFileCB</a>, <a class="el" href="classArClientFileToClient.html#a84cf5823e0852172215bcf3c617cc581">myGetFileWithTimestampCB</a>, and <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#a00069ede1325b6f9f500ef2636858262">ArMutex::setLogName()</a>.</p>

</div>
</div>
<a class="anchor" id="a3c774217ee64fb84cd3047c020fb85af"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">ArClientFileToClient::~ArClientFileToClient </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Destructor. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a8ae2a27a21fff00620aa5932abb5a023"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ArClientFileToClient::addFileReceivedCallback </td>
          <td>(</td>
          <td class="paramtype"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1.html">ArFunctor1</a>&lt; int &gt; *&#160;</td>
          <td class="paramname"><em>functor</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArListPos.html#adb42d52c70a646c5698c5513cd25bbd0">ArListPos::Pos</a>&#160;</td>
          <td class="paramname"><em>position</em> = <code><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArListPos.html#adb42d52c70a646c5698c5513cd25bbd0a3c55111fa6c7f63c41fc0b387f5b57d9">ArListPos::LAST</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Adds a callback for when we get the desired file (or fail) </p>

<p>References <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArListPos.html#adb42d52c70a646c5698c5513cd25bbd0a7573a55fbcdb54b1768e9ce574407d15">ArListPos::FIRST</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArListPos.html#adb42d52c70a646c5698c5513cd25bbd0a3c55111fa6c7f63c41fc0b387f5b57d9">ArListPos::LAST</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#a7b6aee74872c19fb8829d96dc3e52f34">ArMutex::lock()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArLog.html#a43a8b3789126c818f390f24bdbceccce">ArLog::log()</a>, <a class="el" href="classArClientFileToClient.html#a02de3a1b43117ba0e4990299638785ca">myCallbackMutex</a>, <a class="el" href="classArClientFileToClient.html#afd1d9df2586c700eec51795b807dd9d8">myFileReceivedCallbacks</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3a012daf6573594f91242f8dd7c02eb74b">ArLog::Terse</a>, and <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#afb51b5514a9456f23441e479fe58fb46">ArMutex::unlock()</a>.</p>

</div>
</div>
<a class="anchor" id="a0bb7813d9cd97218b3165592f380ba64"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArClientFileToClient::callFileReceivedCallbacks </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>val</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>References <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#a7b6aee74872c19fb8829d96dc3e52f34">ArMutex::lock()</a>, <a class="el" href="classArClientFileToClient.html#a02de3a1b43117ba0e4990299638785ca">myCallbackMutex</a>, <a class="el" href="classArClientFileToClient.html#afd1d9df2586c700eec51795b807dd9d8">myFileReceivedCallbacks</a>, and <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#afb51b5514a9456f23441e479fe58fb46">ArMutex::unlock()</a>.</p>

<p>Referenced by <a class="el" href="classArClientFileToClient.html#aa0427338c17535bfe15a8cc1e83852cb">doGetFile()</a>.</p>

</div>
</div>
<a class="anchor" id="a3c34fb8effac321142196ab17fa868e3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ArClientFileToClient::cancelGet </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Cancels getting a file. </p>

</div>
</div>
<a class="anchor" id="aa0427338c17535bfe15a8cc1e83852cb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArClientFileToClient::doGetFile </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArNetPacket.html">ArNetPacket</a> *&#160;</td>
          <td class="paramname"><em>packet</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>isSetTimestamp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>References <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArBasePacket.html#a80571dd0c49cfb0717b1fc1e81176672">ArBasePacket::bufToByte4()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArBasePacket.html#ab36d3542331e2e288747cbcc0d36333e">ArBasePacket::bufToData()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArBasePacket.html#a8f1536daa451024715fe82cec495e826">ArBasePacket::bufToStr()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArBasePacket.html#ac2d63293b9a983d18430eceb0edbf0b1">ArBasePacket::bufToUByte2()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArBasePacket.html#a18d3e098635ec49ee8b7b43dc5c65c77">ArBasePacket::bufToUByte4()</a>, <a class="el" href="classArClientFileToClient.html#a0bb7813d9cd97218b3165592f380ba64">callFileReceivedCallbacks()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArUtil.html#ab97031fd3fac6e44936406412896a6f0">ArUtil::changeFileTimestamp()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArUtil.html#a891a7c83c2f48b4acf9d7206247bbda8">ArUtil::fixSlashes()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArUtil.html#a0c4d240777628983e66005d7f7a4939c">ArUtil::fopen()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArBasePacket.html#adc317a80a2a2ed97529455016b615c88">ArBasePacket::getDataLength()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#a7b6aee74872c19fb8829d96dc3e52f34">ArMutex::lock()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArLog.html#a43a8b3789126c818f390f24bdbceccce">ArLog::log()</a>, <a class="el" href="classArClientFileToClient.html#aa1aff7c76f49aedc937795ae8a9ad361">myClientFileName</a>, <a class="el" href="classArClientFileToClient.html#a427fc2021fa520b0435461a6d9034f19">myDataMutex</a>, <a class="el" href="classArClientFileToClient.html#a4f9d9c4634ef364795234005cfddbe36">myFile</a>, <a class="el" href="classArClientFileToClient.html#a4e27b84d45f468764a898b7aba39275d">myFileName</a>, <a class="el" href="classArClientFileToClient.html#a9c7c07d6cef3bd66bd79cf0f01f4714a">myIsWaitingForFile</a>, <a class="el" href="classArClientFileToClient.html#aef93ffa4da17748ad5ac71440e99753c">myLastReceived</a>, <a class="el" href="classArClientFileToClient.html#a887d961d27b86cb933b487a22fe0fff1">myWholeFileName</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3a7040faf60eeb155eaa85d439b1066ca1">ArLog::Normal</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/group__easy.html#ga7c269e161c8e7cb56bde73dea501a619">ArTime::setToNow()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArUtil.html#ab17364ae21df36b1d11942bc5d75b074">ArUtil::strcasecmp()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#afb51b5514a9456f23441e479fe58fb46">ArMutex::unlock()</a>, and <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3a6e80d09c67dad73e9ba736e91ec893be">ArLog::Verbose</a>.</p>

<p>Referenced by <a class="el" href="classArClientFileToClient.html#a1000c8f2945568072fefa3d3c90b1107">netGetFile()</a>, and <a class="el" href="classArClientFileToClient.html#a294d1eb8064f2b762ad7dc7b84ecf186">netGetFileWithTimestamp()</a>.</p>

</div>
</div>
<a class="anchor" id="a4929609a8f3d46a405a8613b40ddffcc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char * ArClientFileToClient::getClientFileName </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets the filename we'll save the gotten file in. </p>

<p>References <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#a7b6aee74872c19fb8829d96dc3e52f34">ArMutex::lock()</a>, <a class="el" href="classArClientFileToClient.html#aa1aff7c76f49aedc937795ae8a9ad361">myClientFileName</a>, <a class="el" href="classArClientFileToClient.html#a427fc2021fa520b0435461a6d9034f19">myDataMutex</a>, and <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#afb51b5514a9456f23441e479fe58fb46">ArMutex::unlock()</a>.</p>

</div>
</div>
<a class="anchor" id="aa22974b9c503a48b6b12354fe2b101d7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char * ArClientFileToClient::getDirectory </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets the directory we're getting from. </p>

<p>References <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#a7b6aee74872c19fb8829d96dc3e52f34">ArMutex::lock()</a>, <a class="el" href="classArClientFileToClient.html#a427fc2021fa520b0435461a6d9034f19">myDataMutex</a>, <a class="el" href="classArClientFileToClient.html#ac8391ae824478fda7261ac4c84caa102">myDirectory</a>, and <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#afb51b5514a9456f23441e479fe58fb46">ArMutex::unlock()</a>.</p>

</div>
</div>
<a class="anchor" id="a6c67cc9461922e8186ab5df15017fbfb"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ArClientFileToClient::getFileFromDirectory </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>directory</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>fileName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>clientFileName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>isSetTimestamp</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the file from a directory. </p>

<p>References <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArUtil.html#acd8e6fd8ab58feaf25fd1eef4376306d">ArUtil::appendSlash()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArUtil.html#a891a7c83c2f48b4acf9d7206247bbda8">ArUtil::fixSlashes()</a>, <a class="el" href="classArClientFileToClient.html#a1eb35af8547449158603974cf6cf63cd">isAvailable()</a>, <a class="el" href="classArClientFileToClient.html#af3cca08315edf9b8ec2d61b2d0a3feec">isAvailableSetTimestamp()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#a7b6aee74872c19fb8829d96dc3e52f34">ArMutex::lock()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArLog.html#a43a8b3789126c818f390f24bdbceccce">ArLog::log()</a>, <a class="el" href="classArClientFileToClient.html#a81119cd522bd9692559555923ea6d4b4">myClient</a>, <a class="el" href="classArClientFileToClient.html#aa1aff7c76f49aedc937795ae8a9ad361">myClientFileName</a>, <a class="el" href="classArClientFileToClient.html#a427fc2021fa520b0435461a6d9034f19">myDataMutex</a>, <a class="el" href="classArClientFileToClient.html#ac8391ae824478fda7261ac4c84caa102">myDirectory</a>, <a class="el" href="classArClientFileToClient.html#a4e27b84d45f468764a898b7aba39275d">myFileName</a>, <a class="el" href="classArClientFileToClient.html#a9c7c07d6cef3bd66bd79cf0f01f4714a">myIsWaitingForFile</a>, <a class="el" href="classArClientFileToClient.html#aa6e9b6c04f34cbc5786c46054f50e2d0">myLastRequested</a>, <a class="el" href="classArClientFileToClient.html#a887d961d27b86cb933b487a22fe0fff1">myWholeFileName</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3a7040faf60eeb155eaa85d439b1066ca1">ArLog::Normal</a>, <a class="el" href="classArClientBase.html#a2dcd11daf8d2045d460b83733e6932d0">ArClientBase::requestOnce()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/group__easy.html#ga7c269e161c8e7cb56bde73dea501a619">ArTime::setToNow()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArBasePacket.html#a1367558f1c0ce2830072a649ad935d21">ArBasePacket::strToBuf()</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArLog.html#ac8cc0fb3aa323ab2a1c21340fdd1dce3a012daf6573594f91242f8dd7c02eb74b">ArLog::Terse</a>, <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArBasePacket.html#aeec1b2c2dc6902e3c2b820fb2ddbf0e2">ArBasePacket::uByte2ToBuf()</a>, and <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#afb51b5514a9456f23441e479fe58fb46">ArMutex::unlock()</a>.</p>

</div>
</div>
<a class="anchor" id="a2a4d93d53ed383192b75143d60094d31"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char * ArClientFileToClient::getFileName </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets the filename we're getting. </p>

<p>References <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#a7b6aee74872c19fb8829d96dc3e52f34">ArMutex::lock()</a>, <a class="el" href="classArClientFileToClient.html#a427fc2021fa520b0435461a6d9034f19">myDataMutex</a>, <a class="el" href="classArClientFileToClient.html#a4e27b84d45f468764a898b7aba39275d">myFileName</a>, and <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#afb51b5514a9456f23441e479fe58fb46">ArMutex::unlock()</a>.</p>

</div>
</div>
<a class="anchor" id="a05c011e29731b8b0933b15b261e42f4f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArTime.html">ArTime</a> ArClientFileToClient::getLastReceived </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets the last time we finished getting a file. </p>

<p>References <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#a7b6aee74872c19fb8829d96dc3e52f34">ArMutex::lock()</a>, <a class="el" href="classArClientFileToClient.html#a427fc2021fa520b0435461a6d9034f19">myDataMutex</a>, <a class="el" href="classArClientFileToClient.html#aef93ffa4da17748ad5ac71440e99753c">myLastReceived</a>, and <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#afb51b5514a9456f23441e479fe58fb46">ArMutex::unlock()</a>.</p>

</div>
</div>
<a class="anchor" id="a4c9e0fbf12a4136cbdfdd3d6412854ed"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArTime.html">ArTime</a> ArClientFileToClient::getLastRequested </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets the last time we asked for a file. </p>

<p>References <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#a7b6aee74872c19fb8829d96dc3e52f34">ArMutex::lock()</a>, <a class="el" href="classArClientFileToClient.html#a427fc2021fa520b0435461a6d9034f19">myDataMutex</a>, <a class="el" href="classArClientFileToClient.html#aa6e9b6c04f34cbc5786c46054f50e2d0">myLastRequested</a>, and <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#afb51b5514a9456f23441e479fe58fb46">ArMutex::unlock()</a>.</p>

</div>
</div>
<a class="anchor" id="a1eb35af8547449158603974cf6cf63cd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ArClientFileToClient::isAvailable </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Sees if the server supports what this class needs. </p>

<p>References <a class="el" href="classArClientBase.html#a873a731b968b4e3359c60d592122770b">ArClientBase::dataExists()</a>, and <a class="el" href="classArClientFileToClient.html#a81119cd522bd9692559555923ea6d4b4">myClient</a>.</p>

<p>Referenced by <a class="el" href="classArClientFileToClient.html#a6c67cc9461922e8186ab5df15017fbfb">getFileFromDirectory()</a>.</p>

</div>
</div>
<a class="anchor" id="af3cca08315edf9b8ec2d61b2d0a3feec"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ArClientFileToClient::isAvailableSetTimestamp </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>References <a class="el" href="classArClientBase.html#a873a731b968b4e3359c60d592122770b">ArClientBase::dataExists()</a>, and <a class="el" href="classArClientFileToClient.html#a81119cd522bd9692559555923ea6d4b4">myClient</a>.</p>

<p>Referenced by <a class="el" href="classArClientFileToClient.html#a6c67cc9461922e8186ab5df15017fbfb">getFileFromDirectory()</a>.</p>

</div>
</div>
<a class="anchor" id="a271f4b6fb58fe94976812c59945884c3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool ArClientFileToClient::isWaitingForFile </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>If we're getting a file now. </p>

<p>References <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#a7b6aee74872c19fb8829d96dc3e52f34">ArMutex::lock()</a>, <a class="el" href="classArClientFileToClient.html#a427fc2021fa520b0435461a6d9034f19">myDataMutex</a>, <a class="el" href="classArClientFileToClient.html#a9c7c07d6cef3bd66bd79cf0f01f4714a">myIsWaitingForFile</a>, and <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#afb51b5514a9456f23441e479fe58fb46">ArMutex::unlock()</a>.</p>

</div>
</div>
<a class="anchor" id="a1000c8f2945568072fefa3d3c90b1107"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArClientFileToClient::netGetFile </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArNetPacket.html">ArNetPacket</a> *&#160;</td>
          <td class="paramname"><em>packet</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>References <a class="el" href="classArClientFileToClient.html#aa0427338c17535bfe15a8cc1e83852cb">doGetFile()</a>.</p>

</div>
</div>
<a class="anchor" id="a294d1eb8064f2b762ad7dc7b84ecf186"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArClientFileToClient::netGetFileWithTimestamp </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArNetPacket.html">ArNetPacket</a> *&#160;</td>
          <td class="paramname"><em>packet</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>References <a class="el" href="classArClientFileToClient.html#aa0427338c17535bfe15a8cc1e83852cb">doGetFile()</a>.</p>

</div>
</div>
<a class="anchor" id="a1964908870ddc9c90be98de53b453d2d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ArClientFileToClient::remFileReceivedCallback </td>
          <td>(</td>
          <td class="paramtype"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1.html">ArFunctor1</a>&lt; int &gt; *&#160;</td>
          <td class="paramname"><em>functor</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Removes a callback for when we get the desired file (or fail) </p>

<p>References <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#a7b6aee74872c19fb8829d96dc3e52f34">ArMutex::lock()</a>, <a class="el" href="classArClientFileToClient.html#a02de3a1b43117ba0e4990299638785ca">myCallbackMutex</a>, <a class="el" href="classArClientFileToClient.html#afd1d9df2586c700eec51795b807dd9d8">myFileReceivedCallbacks</a>, and <a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html#afb51b5514a9456f23441e479fe58fb46">ArMutex::unlock()</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="a02de3a1b43117ba0e4990299638785ca"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html">ArMutex</a> ArClientFileToClient::myCallbackMutex</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientFileToClient.html#a8ae2a27a21fff00620aa5932abb5a023">addFileReceivedCallback()</a>, <a class="el" href="classArClientFileToClient.html#a2920d44577a99d421d33622773b746ff">ArClientFileToClient()</a>, <a class="el" href="classArClientFileToClient.html#a0bb7813d9cd97218b3165592f380ba64">callFileReceivedCallbacks()</a>, and <a class="el" href="classArClientFileToClient.html#a1964908870ddc9c90be98de53b453d2d">remFileReceivedCallback()</a>.</p>

</div>
</div>
<a class="anchor" id="a81119cd522bd9692559555923ea6d4b4"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classArClientBase.html">ArClientBase</a>* ArClientFileToClient::myClient</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientFileToClient.html#a2920d44577a99d421d33622773b746ff">ArClientFileToClient()</a>, <a class="el" href="classArClientFileToClient.html#a6c67cc9461922e8186ab5df15017fbfb">getFileFromDirectory()</a>, <a class="el" href="classArClientFileToClient.html#a1eb35af8547449158603974cf6cf63cd">isAvailable()</a>, and <a class="el" href="classArClientFileToClient.html#af3cca08315edf9b8ec2d61b2d0a3feec">isAvailableSetTimestamp()</a>.</p>

</div>
</div>
<a class="anchor" id="aa1aff7c76f49aedc937795ae8a9ad361"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string ArClientFileToClient::myClientFileName</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientFileToClient.html#aa0427338c17535bfe15a8cc1e83852cb">doGetFile()</a>, <a class="el" href="classArClientFileToClient.html#a4929609a8f3d46a405a8613b40ddffcc">getClientFileName()</a>, and <a class="el" href="classArClientFileToClient.html#a6c67cc9461922e8186ab5df15017fbfb">getFileFromDirectory()</a>.</p>

</div>
</div>
<a class="anchor" id="a427fc2021fa520b0435461a6d9034f19"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArMutex.html">ArMutex</a> ArClientFileToClient::myDataMutex</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientFileToClient.html#a2920d44577a99d421d33622773b746ff">ArClientFileToClient()</a>, <a class="el" href="classArClientFileToClient.html#aa0427338c17535bfe15a8cc1e83852cb">doGetFile()</a>, <a class="el" href="classArClientFileToClient.html#a4929609a8f3d46a405a8613b40ddffcc">getClientFileName()</a>, <a class="el" href="classArClientFileToClient.html#aa22974b9c503a48b6b12354fe2b101d7">getDirectory()</a>, <a class="el" href="classArClientFileToClient.html#a6c67cc9461922e8186ab5df15017fbfb">getFileFromDirectory()</a>, <a class="el" href="classArClientFileToClient.html#a2a4d93d53ed383192b75143d60094d31">getFileName()</a>, <a class="el" href="classArClientFileToClient.html#a05c011e29731b8b0933b15b261e42f4f">getLastReceived()</a>, <a class="el" href="classArClientFileToClient.html#a4c9e0fbf12a4136cbdfdd3d6412854ed">getLastRequested()</a>, and <a class="el" href="classArClientFileToClient.html#a271f4b6fb58fe94976812c59945884c3">isWaitingForFile()</a>.</p>

</div>
</div>
<a class="anchor" id="ac8391ae824478fda7261ac4c84caa102"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string ArClientFileToClient::myDirectory</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientFileToClient.html#aa22974b9c503a48b6b12354fe2b101d7">getDirectory()</a>, and <a class="el" href="classArClientFileToClient.html#a6c67cc9461922e8186ab5df15017fbfb">getFileFromDirectory()</a>.</p>

</div>
</div>
<a class="anchor" id="a4f9d9c4634ef364795234005cfddbe36"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">FILE* ArClientFileToClient::myFile</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientFileToClient.html#aa0427338c17535bfe15a8cc1e83852cb">doGetFile()</a>.</p>

</div>
</div>
<a class="anchor" id="a4e27b84d45f468764a898b7aba39275d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string ArClientFileToClient::myFileName</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientFileToClient.html#aa0427338c17535bfe15a8cc1e83852cb">doGetFile()</a>, <a class="el" href="classArClientFileToClient.html#a6c67cc9461922e8186ab5df15017fbfb">getFileFromDirectory()</a>, and <a class="el" href="classArClientFileToClient.html#a2a4d93d53ed383192b75143d60094d31">getFileName()</a>.</p>

</div>
</div>
<a class="anchor" id="afd1d9df2586c700eec51795b807dd9d8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::list&lt;<a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1.html">ArFunctor1</a>&lt;int&gt; *&gt; ArClientFileToClient::myFileReceivedCallbacks</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientFileToClient.html#a8ae2a27a21fff00620aa5932abb5a023">addFileReceivedCallback()</a>, <a class="el" href="classArClientFileToClient.html#a0bb7813d9cd97218b3165592f380ba64">callFileReceivedCallbacks()</a>, and <a class="el" href="classArClientFileToClient.html#a1964908870ddc9c90be98de53b453d2d">remFileReceivedCallback()</a>.</p>

</div>
</div>
<a class="anchor" id="a362f2949441f95ba895a84e6d32aea2f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1C.html">ArFunctor1C</a>&lt;<a class="el" href="classArClientFileToClient.html">ArClientFileToClient</a>, <a class="el" href="classArNetPacket.html">ArNetPacket</a> *&gt; ArClientFileToClient::myGetFileCB</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientFileToClient.html#a2920d44577a99d421d33622773b746ff">ArClientFileToClient()</a>.</p>

</div>
</div>
<a class="anchor" id="a84cf5823e0852172215bcf3c617cc581"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArFunctor1C.html">ArFunctor1C</a>&lt;<a class="el" href="classArClientFileToClient.html">ArClientFileToClient</a>, <a class="el" href="classArNetPacket.html">ArNetPacket</a> *&gt; ArClientFileToClient::myGetFileWithTimestampCB</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientFileToClient.html#a2920d44577a99d421d33622773b746ff">ArClientFileToClient()</a>.</p>

</div>
</div>
<a class="anchor" id="a9c7c07d6cef3bd66bd79cf0f01f4714a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ArClientFileToClient::myIsWaitingForFile</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientFileToClient.html#aa0427338c17535bfe15a8cc1e83852cb">doGetFile()</a>, <a class="el" href="classArClientFileToClient.html#a6c67cc9461922e8186ab5df15017fbfb">getFileFromDirectory()</a>, and <a class="el" href="classArClientFileToClient.html#a271f4b6fb58fe94976812c59945884c3">isWaitingForFile()</a>.</p>

</div>
</div>
<a class="anchor" id="aef93ffa4da17748ad5ac71440e99753c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArTime.html">ArTime</a> ArClientFileToClient::myLastReceived</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientFileToClient.html#aa0427338c17535bfe15a8cc1e83852cb">doGetFile()</a>, and <a class="el" href="classArClientFileToClient.html#a05c011e29731b8b0933b15b261e42f4f">getLastReceived()</a>.</p>

</div>
</div>
<a class="anchor" id="aa6e9b6c04f34cbc5786c46054f50e2d0"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="elRef" doxygen="/home/reed/amrsw/Aria/docs/Aria.tag:../../docs/" href="../../docs/classArTime.html">ArTime</a> ArClientFileToClient::myLastRequested</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientFileToClient.html#a6c67cc9461922e8186ab5df15017fbfb">getFileFromDirectory()</a>, and <a class="el" href="classArClientFileToClient.html#a4c9e0fbf12a4136cbdfdd3d6412854ed">getLastRequested()</a>.</p>

</div>
</div>
<a class="anchor" id="a887d961d27b86cb933b487a22fe0fff1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">std::string ArClientFileToClient::myWholeFileName</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Referenced by <a class="el" href="classArClientFileToClient.html#aa0427338c17535bfe15a8cc1e83852cb">doGetFile()</a>, and <a class="el" href="classArClientFileToClient.html#a6c67cc9461922e8186ab5df15017fbfb">getFileFromDirectory()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="ArClientFileUtils_8h.html">ArClientFileUtils.h</a></li>
<li><a class="el" href="ArClientFileUtils_8cpp.html">ArClientFileUtils.cpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classArClientFileToClient.html">ArClientFileToClient</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
